/*日志消息*/
#pragma once

#include "level.hpp"
#include "util.hpp"
#include <iostream>
#include <thread>

namespace lcllog
{
    // [2025-04-02 22:11:26][lcl][pid][main.c:99][FATAL] 创建套接字失败...
    class LogMsg
    {
    public:
        LogMsg(const std::string& logname, const std::string& file, 
        size_t line, LogLevel::value level, const std::string&& payload)
        :_ctime(util::Date::now())
        ,_logname(logname)
        ,_pid(std::this_thread::get_id())
        ,_file(file)
        ,_line(line)
        ,_level(level)
        ,_payload(std::move(payload))
        {}
    public:
        size_t _ctime;          // 日志产生时间
        std::string _logname;   // 日志器名称
        std::thread::id _pid;   // 线程id
        std::string _file;      // 产生日志的文件
        size_t _line;           // 行号
        LogLevel::value _level; // 日志等级
        std::string _payload;   // 日志主体信息
    };
}